package com.github.cakin.shiro.chapter23.dao;

import com.github.cakin.shiro.chapter23.entity.App;

import java.util.List;

/**
 * @className: AppDao
 * @description: App数据访问层
 * @date: 2020/6/1
 * @author: cakin
 */
public interface AppDao {
    /**
     * 功能描述：创建App
     *
     * @param app app应用
     * @return App 创建的App
     * @author cakin
     * @date 2020/6/1
     * @description:
     */
    App createApp( App app );

    /**
     * 功能描述：更新App
     *
     * @param app app应用
     * @return App 修改后的App
     * @author cakin
     * @date 2020/6/1
     */
    App updateApp( App app );

    /**
     * 功能描述：删除App
     *
     * @param appId app主键
     * @author cakin
     * @date 2020/6/1
     */
    void deleteApp( Long appId );

    /**
     * 功能描述：根据appId找到对应的App
     *
     * @param appId appId
     * @return App App
     * @author cakin
     * @date 2020/6/1
     */
    App findOne( Long appId );

    /**
     * 功能描述：找到所有的App
     *
     * @return List<App> App列表
     * @author cakin
     * @date 2020/6/1
     */
    List<App> findAll();

    /**
     * 功能描述：根据appKey找到对应的主键
     *
     * @param appKey app键
     * @return List<App> App列表
     * @author cakin
     * @date 2020/6/1
     */
    Long findAppIdByAppKey( String appKey );
}
